﻿using System;
using KZ.Utilities;

namespace KZ.Express.H.ENT
{
    public class UserENT : BaseENT
    {
        public static int _USERID = 12;

        public static int _ROLEID = 2;

        [Output]
        public int UserID { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập họ tên nhân viên")]
        public string FullName { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập tên đăng nhập")]
        public string Username { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập mật khẩu")]
        [StringLength("Độ dài mật khẩu từ {0} đến {1} ký tự", 6, 50)]
        public string Password { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập vai trò")]
        public int? RoleID { get; set; }

        [NotInsertUpdate]
        public bool IsDeleted { get; set; }

        public int? CreatedBy { get; set; }

        [NotInsertUpdate]
        public DateTime? CreatedDate { get; set; }

        public int? UpdatedBy { get; set; }

        [NotInsertUpdate]
        public DateTime? UpdatedDate { get; set; }

        [NotInsertUpdate]
        public override int IsRecovery { get; set; }

        [NotInsertUpdate]
        public override string Table { get { return "Users"; } }

        [NotInsertUpdate]
        public override string PrimaryKey { get { return "UserID"; } }

        [NotInsertUpdate]
        public override string PrimaryDescription { get { return "FullName"; } }

        /// <summary>
        /// proc_User_Insert
        /// </summary>
        [NotInsertUpdate]
        public override string InsertProcedure { get { return "proc_User_Insert"; } }

        /// <summary>
        /// proc_User_Update
        /// </summary>
        [NotInsertUpdate]
        public override string UpdateProcedure { get { return "proc_User_Update"; } }

        /// <summary>
        /// proc_User_Select
        /// </summary>
        [NotInsertUpdate]
        public override string SelectProcedure { get { return "proc_User_Select"; } }

        public static readonly string UpdatePasswordProcedure = "proc_User_Update_Password";
    }
}
